<?php

namespace UFSW\DataBaseBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * Torneo
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="UFSW\DataBaseBundle\Entity\TorneoRepository")
 */
class Torneo
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
    
    /**
     * @var string 
     * 
     * @ORM\Column(name="nombre", type="string", length=50)
     * @Assert\NotBlank()
     * @Assert\Length(min = 4)
     */
    private $nombre;
    
    /**
     * @var string 
     * 
     * @ORM\Column(name="descripcion", type="string", length=500, nullable=true)
     */
    private $descripcion;
    
    /**
     * @var string 
     * 
     * @ORM\Column(name="ciudad", type="string", length=50)
     * @Assert\NotBlank()
     */
    private $ciudad;

    /**
     * @ORM\oneToMany(targetEntity="UFSW\DataBaseBundle\Entity\Partido", mappedBy="torneo")
     */
    private $partidos;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="fecIni", type="date")
     * 
     * @Assert\Date()
     * @Assert\NotBlank()
     */
    private $fechaInicio;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="fecFin", type="date")
     * 
     * @Assert\Date()
     * @Assert\NotBlank()
     */
    private $fechaFin;

    /**
     * @ORM\oneToMany(targetEntity="UFSW\DataBaseBundle\Entity\Equipo", mappedBy="torneo")
     */
    private $equipos;

    /**
     * @var integer
     *
     * @ORM\Column(name="canchas", type="integer", nullable=true)
     */
    private $canchas;
    
    /**
     * @var integer
     * 
     * @ORM\Column(name="tipo", type="integer") 
     */
    private $tipo;
    
    /**
     * @var boolean
     *
     * @ORM\Column(name="estado", type="boolean", nullable=true)
     */
    private $estado;

    /**
     * @var string
     *
     * @ORM\Column(name="resultados", type="string", length=255, nullable=true)
     */
    private $resultados;
    
    /**
     * @ORM\ManyToOne(targetEntity="UFSW\DataBaseBundle\Entity\Usuario", inversedBy="torneos")
     * @ORM\JoinColumn(name="usuario_id", referencedColumnName="id", nullable=true)
     */
    private $usuario;

    public function __construct()
    {
        $this->partidos = new ArrayCollection();
        $this->equipos = new ArrayCollection();
    }
    
    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set partidos
     *
     * @param string $partidos
     * @return Torneo
     */
    public function setPartidos($partidos)
    {
        $this->partidos = $partidos;

        return $this;
    }

    /**
     * Get partidos
     *
     * @return string 
     */
    public function getPartidos()
    {
        return $this->partidos;
    }

    /**
     * Set fechaInicio
     *
     * @param \DateTime $fecha
     * @return Torneo
     */
    public function setFechaInicio($fecha)
    {
        $this->fechaInicio = $fecha;

        return $this;
    }

    /**
     * Get fechaInicio
     *
     * @return \DateTime 
     */
    public function getFechaInicio()
    {
        return $this->fechaInicio;
    }

    /**
     * Set fechaFin
     *
     * @param \DateTime $fecha
     * @return Torneo
     */
    public function setFechaFin($fecha)
    {
        $this->fechaFin = $fecha;

        return $this;
    }

    /**
     * Get fechaFin
     *
     * @return \DateTime 
     */
    public function getFechaFin()
    {
        return $this->fechaFin;
    }

    /**
     * Set equipos
     *
     * @param string $equipos
     * @return Torneo
     */
    public function setEquipos($equipos)
    {
        $this->equipos = $equipos;

        return $this;
    }

    /**
     * Get equipos
     *
     * @return string 
     */
    public function getEquipos()
    {
        return $this->equipos;
    }

    /**
     * Set canchas
     *
     * @param integer $canchas
     * @return Torneo
     */
    public function setCanchas($canchas)
    {
        $this->canchas = $canchas;

        return $this;
    }

    /**
     * Get canchas
     *
     * @return integer 
     */
    public function getCanchas()
    {
        return $this->canchas;
    }

    /**
     * Set resultados
     *
     * @param string $resultados
     * @return Torneo
     */
    public function setResultados($resultados)
    {
        $this->resultados = $resultados;

        return $this;
    }

    /**
     * Get resultados
     *
     * @return string 
     */
    public function getResultados()
    {
        return $this->resultados;
    }
    
    /**
     * Add equipo
     *
     */
    public function addEquipo(Equipo $equipo)
    {
    
    	$this->equipos->add($equipo);
    }
    
    
    /**
     * Remove equipo
     *
     */
    public function removeEquipo(Equipo $equipo)
    {
    	$this->equipos->removeElement($equipo);
    }
    
     /**
     * Add partido
     *
     */
    public function addPartido(Partido $partido)
    {
    
    	$this->partidos->add($partido);
    }
    
    
    /**
     * Remove partido
     *
     */
    public function removePartido(Partido $partido)
    {
    	$this->partidos->removeElement($partido);
    }
    
    /**
     * Set nombre
     *
     * @param string $nombre
     * @return Torneo
     */
    public function setNombre($nombre)
    {
        $this->nombre = $nombre;

        return $this;
    }

    /**
     * Get nombre
     *
     * @return string 
     */
    public function getNombre()
    {
        return $this->nombre;
    }
    
    /**
     * Set descripcion
     *
     * @param string $descripcion
     * @return Torneo
     */
    public function setDescripcion($descripcion)
    {
        $this->descripcion = $descripcion;

        return $this;
    }

    /**
     * Get descripcion
     *
     * @return string 
     */
    public function getDescripcion()
    {
        return $this->descripcion;
    }
    
    /**
     * Set ciudad
     *
     * @param string $cuidad
     * @return Torneo
     */
    public function setCiudad($cuidad)
    {
        $this->ciudad = $cuidad;

        return $this;
    }

    /**
     * Get nombre
     *
     * @return string 
     */
    public function getCiudad()
    {
        return $this->ciudad;
    }
    
    /**
     * Set tipo
     *
     * @param integer $tipo
     * @return Torneo
     */
    public function setTipo($tipo)
    {
        $this->tipo = $tipo;

        return $this;
    }

    /**
     * Get tipo
     *
     * @return integer 
     */
    public function getTipo()
    {
        return $this->tipo;
    }
    
    /**
     * Set Usuario
     * @param $usuario
     * return Torneo
     */
    public function setUsuario(Usuario $usuario)
    {
        $this->usuario = $usuario;
        return $this;
    }
    /**
     * Get Usuario
     *
     * @return Usuario 
     */
    public function getUsuario()
    {
        return $this->usuario;
    }
    
    /**
     * Set Estado
     *
     * @param boolean $estado
     * @return Torneo
     */
    public function setEstado($estado)
    {
        $this->estado = $estado;

        return $this;
    }

    /**
     * Get Estado
     *
     * @return boolean 
     */
    public function getEstado()
    {
        return $this->estado;
    }
    
    /**
     * Get Estado
     *
     * @return boolean 
     */
    public function getEstadoString()
    {
        if ($this->estado == 1)
        {
            return "en.curso";
        } else {
            return "finalizado";
        }
    }
}
